package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 婚恋人员信息对象 dating_member
 *
 * @author ruoyi
 * @date 2024-01-15
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("dating_member")
public class DatingMember extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 人员ID */
    @TableId(value = "member_id", type = IdType.AUTO)
    private Long memberId;

    /** 人员编号 */
    @Excel(name = "人员编号")
    private String memberNo;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickName;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 性别（0男 1女） */
    @Excel(name = "性别", readConverterExp = "0=男,1=女")
    private String gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 年龄 */
    @Excel(name = "年龄")
    private Long age;

    /** 身高(cm) */
    @Excel(name = "身高(cm)")
    private Long height;

    /** 体重(kg) */
    @Excel(name = "体重(kg)")
    private Long weight;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 微信号 */
    @Excel(name = "微信号")
    private String wechat;

    /** QQ号 */
    @Excel(name = "QQ号")
    private String qq;

    /** 省份 */
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 区县 */
    @Excel(name = "区县")
    private String district;

    /** 地区ID数组 (前端传递的省市区ID) */
    @TableField(exist = false)
    private Long[] regionIds;

    /** 省份ID */
    private Long provinceId;

    /** 城市ID */
    private Long cityId;

    /** 区县ID */
    private Long districtId;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 学历 */
    @Excel(name = "学历")
    private String education;

    /** 专业 */
    @Excel(name = "专业")
    private String major;

    /** 毕业院校 */
    @Excel(name = "毕业院校")
    private String school;

    /** 工作单位 */
    @Excel(name = "工作单位")
    private String workUnit;

    /** 职位 */
    @Excel(name = "职位")
    private String position;

    /** 月收入 */
    @Excel(name = "月收入")
    private BigDecimal monthlyIncome;

    /** 年收入 */
    @Excel(name = "年收入")
    private BigDecimal annualIncome;

    /** 婚恋状态 */
    @Excel(name = "婚恋状态")
    private String maritalStatus;

    /** 是否有子女（0无 1有） */
    @Excel(name = "是否有子女", readConverterExp = "0=无,1=有")
    private String hasChildren;

    /** 子女数量 */
    @Excel(name = "子女数量")
    private Long childrenCount;

    /** 性格描述 */
    @Excel(name = "性格描述")
    private String personality;

    /** 兴趣爱好 */
    @Excel(name = "兴趣爱好")
    private String hobbies;

    /** 自我介绍 */
    @Excel(name = "自我介绍")
    private String selfIntroduction;

    /** 头像照片 */
    @Excel(name = "头像照片")
    private String avatar;

    /** 个人照片 */
    @Excel(name = "个人照片")
    private String photos;

    /** 期望年龄最小值 */
    @Excel(name = "期望年龄最小值")
    private Long mateAgeMin;

    /** 期望年龄最大值 */
    @Excel(name = "期望年龄最大值")
    private Long mateAgeMax;

    /** 期望身高最小值(cm) */
    @Excel(name = "期望身高最小值(cm)")
    private Long mateHeightMin;

    /** 期望身高最大值(cm) */
    @Excel(name = "期望身高最大值(cm)")
    private Long mateHeightMax;

    /** 期望学历 */
    @Excel(name = "期望学历")
    private String mateEducation;

    /** 期望最低收入 */
    @Excel(name = "期望最低收入")
    private BigDecimal mateIncomeMin;

    /** 期望居住地 */
    @Excel(name = "期望居住地")
    private String mateLocation;

    /** 其他择偶要求 */
    @Excel(name = "其他择偶要求")
    private String mateRequirement;

    /** 注册日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registrationDate;

    /** 状态（0停用 1正常 2已配对） */
    @Excel(name = "状态", readConverterExp = "0=停用,1=正常,2=已配对")
    private String memberStatus;

    /** VIP等级 */
    @Excel(name = "VIP等级")
    private Long vipLevel;

    /** VIP到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "VIP到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date vipExpireDate;

    /** 负责红娘ID */
    @Excel(name = "负责红娘ID")
    private Long consultantId;


}
